Platform as a Service (PaaS) is one category of cloud computing services that provides a computing platform and a solution stack as a service. Using PaaS, a customer creates software using tools and/or libraries from a PaaS provider and controls software development and configuration settings. The PaaS provider provides the networks, servers, storage, as well as other services.
The PaaS cloud marketplace has grown significantly in the past couple of years. PaaS has grown both in terms of customers adopting the platforms to develop and deploy applications as well as in terms of maturity of the platforms offered by various vendors. Platform as a service paradigm is based on the premise of providing users the flexibility of developing and deploying applications without caring about issues related to infrastructure and platform provisioning.
As such, PaaS cloud platforms are becoming an attractive proposition for software developers. A PaaS cloud, unlike an Infrastructure cloud, frees the user from taking the responsibility of applying updates to the platform or provisioning and managing the underlying infrastructure. Furthermore, unlike Software as a Service (SaaS) cloud, a PaaS cloud platform allows the developer to have flexibility and control over what the application does and how it implements the functionality. The majority of the PaaS cloud platforms provide development environments along with a set of technical services, frameworks and capabilities, in addition to the hosting infrastructure support in terms of CPU, memory, disks and network bandwidth.
In a PaaS platform, the base application platforms (e.g., Operating Systems, Database, Application stacks, Web-servers and related modules) are supplanted by external technical services or add-ons (like queues, caches, etc.), which an application can consume in a paid or free manner. Faster and feature-rich development and hosting environments, rapid deployment and testing capability, massive scalability, no licensing hassles and, pay-as-you-go cost models are making PaaS platforms appealing to the enterprise software development community.
However, the PaaS cloud platforms are relatively new and immature. Different PaaS vendors may have different sets of architectures, platform capabilities, and restrictions related to software development and configuration. These variations and limitations need to be evaluated carefully while developing or migrating an enterprise application to a PaaS platform.